package com.app.util.common;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Calendar;

import org.apache.commons.io.FileUtils;
import org.springframework.web.multipart.MultipartFile;

/**
 * 上传文件
 */
public class FileUpload {

	/**
	 * @param file 			//文件对象
	 * @param filePath		//相对路径
	 * @param fileName		//文件名
	 * @return  文件名
	 */
	public static String fileUp(MultipartFile file, String filePath, String fileName)throws IOException{
		String extName = ""; // 扩展名格式：
		if (file.getOriginalFilename().lastIndexOf(".") >= 0){
			extName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
		}
		Calendar calendar=Calendar.getInstance();
		filePath=filePath+(filePath.endsWith("/")?"":"/")+calendar.get(Calendar.YEAR)+"/"+(calendar.get(Calendar.MONTH)+1)+"/"+calendar.get(Calendar.DAY_OF_MONTH)+"/";
		return copyFile(file.getInputStream(), filePath, fileName+extName);
	}
	
	/**
	 * 写文件到服务器磁盘
	 * @param in 文件实体
	 * @param filePath 相对路径
	 * @param realName 保存的文件名
	 * @return
	 * @throws IOException
	 */
	public static String copyFile(InputStream in, String filePath, String realName)
			throws IOException {
		//String realPath = PathUtil.getClasspath();
		File file = new File(filePath, realName);
		if (!file.exists()) {
			if (!file.getParentFile().exists()) {
				file.getParentFile().mkdirs();
			}
			file.createNewFile();
		}
		FileUtils.copyInputStreamToFile(in, file);
		return filePath+realName;
	}
}
